if __name__ == '__main__': #动态规划
    words = ["lqb", "lbq", "qlb", "qbl", "blq", "bql"]
    set1 = set()
    for word in words: #优化查找的时间复杂度，会变成O（1）
        set1.add(word)
    s = input()
    n = len(s)
    if n < 3:
        print(0)
        exit(0) #退出程序
    dp = [0] * n  # dp[i]表示以i为最后一位的字符串能切割出的最大次数
    if s[0:3] in set1: #初始化dp数组
        dp[2] = 1
    # dp[0] = 0
    # dp[1] = 0
    for i in range(3, n):
        pre = s[i - 2:i + 1] #左闭右开
        val = 0 #能够对答案的帮助
        if pre in set1: #说明能切割出一个合适的字符串
            val = 1
        dp[i] = max(val + dp[i - 3], dp[i - 1]) #有两种状态转移的可能，第一种就是我不要当前这个字符，第二种要当前字符
    print(dp[n - 1])
